package org.example.servlet;

import org.example.pojo.User;
import org.example.service.UserService;
import org.example.service.impl.UserServiceImpl;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * 用户登录：
 * 	1、	用户点击登录发送请求到UserServlet
 * 		tomcat服务器接收到请求后调用UserServlet中service方法进行请求处理，并将封存了相关数据的
 * 		request对象和response对象作为实参传递给service方法
 *  2、在UserServlet中调用业务层方法进行登录业务处理
 *  3、在业务层方法中调用Dao层方法完成数据库操作
 *  4、完成功能跳转
 *  MVC分层开发：
 *  	M:model  service层和dao层和实体类层
 *  	V:view	  视图层 jsp页面等
 *  	C:controller 控制层  servlet
 *
 */
public class UserServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws IOException {
		
		//设置请求编码格式
		req.setCharacterEncoding("utf-8");
		//设置响应编码格式
		resp.setContentType("text/html; charset=utf-8"); 
		//获取请求信息
		String uname = req.getParameter("uname");
		String pwd = req.getParameter("pwd");
		//处理请求信息
		
		//创建业务层对象
		UserService us = new UserServiceImpl();
		User u= us.getUserInfoService(uname,pwd);
		System.out.println("用户查询登陆结果为："+u);

		//响应处理结果
		//直接响应
		//请求转发

		//获取session对象
		HttpSession hs = req.getSession();

		if (u!=null) { //登陆成功
			//将用户信息存储到session
			hs.setAttribute("user", u);

			//重定向到mian.jsp
			resp.sendRedirect("/main.jsp");
		}else { //登录失败
			//将登陆标记添加
			hs.setAttribute("flag", "loginfalse");

			//重定向到login.jsp
			resp.sendRedirect("/login.jsp");
		}
			
	}
}
